package com.irssproject.app.web.action.main;

import java.util.Map;

import com.irssproject.app.bean.main.Usuari;
import com.irssproject.app.service.main.iface.UsuariService;
import com.irssproject.app.utils.Constants;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;


public class UsuariAction extends ActionSupport {

	private static final long serialVersionUID = -3184393109770695603L;

	private String password;
	
	private String pais;
	
	private String nom;
	
	private String email;
	

	UsuariService usuariService;
	
	public UsuariAction (UsuariService usuariService)
	{
		this.usuariService = usuariService;
	}
	
	public String getPais() {
		return pais;
	}


	public void setPais(String pais) {
		this.pais = pais;
	}


	public String getNom() {
		return nom;
	}


	public void setNom(String nom) {
		this.nom = nom;
	}


	public String getEmail() {
		return email;
	}


	public void setEmail(String email) {
		this.email = email;
	}


	public String getPassword() {
		return password;
	}


	public void setPassword(String password) {
		this.password = password;
	}


	public String donarDeBaixaUsuari(){

		try{

			Map<String,Object> session = ActionContext.getContext().getSession();
			String login = ((Usuari)session.get(Constants.SESSIO_USUARI_AUTENTICAT)).getLogin();


			if (session.containsKey(Constants.SESSIO_USUARI_AUTENTICAT))
			{
				Usuari usuari = new Usuari();
				usuari.setLogin(login);
				usuari.setPassword(password);
				Usuari usr = usuariService.login(usuari.getLogin(),usuari.getPassword());

				if (usr!=null)
				{
					usuariService.eliminarUsuari(usr);
				}
				else
				{
					addActionError(getText("error.usuariaction.autenticacio"));
					return INPUT;
				}
				
				
			}
			
		}catch (Exception e) {
			e.printStackTrace();
			
		}

		return SUCCESS;
	}
	
	public String editarUsuari(){

		try{

			Map<String,Object> session = ActionContext.getContext().getSession();
			String login = ((Usuari)session.get(Constants.SESSIO_USUARI_AUTENTICAT)).getLogin();

			if (session.containsKey(Constants.SESSIO_USUARI_AUTENTICAT))
			{


				Usuari usuari = usuariService.login(login,password);

				if (usuari != null)
				{
					if ("".equals(nom) || "".equals(email))
					{
						
						if ("".equals(nom))
							addActionError(getText("error.esbuit.nom"));
						if ("".equals(email))
							addActionError(getText("error.esbuit.email"));
						
						return INPUT;
					}
					else 
					{
						usuari.setName(nom);
						usuari.setPlace(pais);
						usuari.setEmail(email);
						usuariService.updateUsuari(usuari);

						session.put(Constants.SESSIO_USUARI_AUTENTICAT, usuari);

					}
					

				}
				else
				{
					addActionError(getText("error.usuariaction.autenticacio"));
					return INPUT;
				}
			}
		
			
		}catch (Exception e) {
			e.printStackTrace();
			
		}

		return SUCCESS;
	}


}
